#ifndef __CLI_PARSE__PLAYER_H__
#define __CLI_PARSE__PLAYER_H__

#include "actor.h"

class eInput;

namespace cli_parse {
  class Player : public Actor {
  public:
    Player (void);

    void Teleport (int room, float x, float y, float angle = 0, float z = -1000.0f);
    void Update   (void);

    // Util
    size_t MemSize (void) const;

    // Selectors
    bool       Teleporting (void);
    eInput*    Input       (void);
    e3dCamera* Camera      (void);

    bool       OnGround    (void);

    float      GetX     (void) const;
    float      GetY     (void) const;
    float      GetZ     (void) const;
    float      GetAngle (void) const;
    int        GetRoom  (void) const;

    // Mutators
    void SetInput       (eInput*    input);
    void SetCamera      (e3dCamera* camera);
    void SetTeleporting (bool teleporting);

  private:
    e3dCamera* cam;
    eInput*    input;

    bool       is_teleporting;
    bool       on_ground;
  };
};

#endif /* __CLI_PARSE__PLAYER_H__ */